package com.ruoyi.web.controller.config;

import com.ruoyi.web.controller.webservice.FixedAssetsWebService;
import org.apache.cxf.Bus;
import org.apache.cxf.bus.spring.SpringBus;
import org.apache.cxf.jaxws.EndpointImpl;
import org.apache.cxf.transport.servlet.CXFServlet;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.xml.ws.Endpoint;


@Configuration
public class Cxfconfig {
 
    //访问路径http://localhost:8090/demo/api?wsdl
 
	@Bean
    public ServletRegistrationBean dispatcherServlet1() {
    // 这个方法名报错了，查了一下解决办法就是改个名，随便加个1就行了。
    //接口路径，可根据实际情况自定义
        return new ServletRegistrationBean(new CXFServlet(),"/webservice/*");
    }
 
    @Bean(name = Bus.DEFAULT_BUS_ID)
    public SpringBus springBus() {
        return new SpringBus();
    }

    @Autowired
    private FixedAssetsWebService fixedAssetsWebService;
 
 // 此方法为每一个接口的实现类都创建一个
    @Bean
    public Endpoint endpoint() {
        System.out.println("--------------启动项目成功，接口发布开始-------------");
        EndpointImpl endpoint = new EndpointImpl(springBus(),fixedAssetsWebService);
        //endpoint.getInInterceptors().add(new AuthInterceptor()) ; // 添加自己的拦截器，做认证之前可以先注掉。
        endpoint.publish("/fixedAsset");
        System.out.println("-------------------接口发布成功---------------------");
        return endpoint;
 
    }
	
}